#include <stdio.h>
#include <stdbool.h>
#include <math.h>

bool isPrime(int num){
  if (num <= 1) return false;
  if (num == 2) return true;
  if (num %2 == 0) return false;
  
  int limit = sqrt(num);
  for (int i = 3; i <= limit; i += 2) {
    if (num % i == 0) {
      return false;
    }
  }
  return true;
}

int main() {
  int a,b;
  printf("=== 素数范围查找程序 ===\n");
  printf("请输入下辖a和b（用空格分隔，b最大为100000）；");
  if (scanf("%d %d",&a,&b) != 2) {
    printf("输入格式错误，请输入两个整数！\n");
    return 1;
  }
  
  if (b < a) {
  printf("错误： 上限b不能小于下限a！\n");
  return 1;
  }
  if (b > 100000) {
  printf("错误：上限b超出范围（最大为100000）！ \n");
  return 1;
  }
  
  printf("\n%d 到  %d之间的素数有：\n", a,b);
  int count = 0;
  
  for (int i = a; i <= b; i++) {
    if (isPrime(i)) {
    printf("%6d",i);
    count++;
    
    if (count % 6 == 0) {
      printf("\n");
      }
    }
  }
  if (count % 6 != 0) {
    printf("\n");
  }
  
  printf("\n共有 %d 个素数。\n",count);
  printf("========================\n");
  
  return 0;
}







